A weak reference is just like an ordinary Perl reference except that it
isn't included in the reference count of the thing referred to. This
means that once all references to a particular piece of data are weak,
the piece of data is freed and all the weak references are set to undef.
This is particularly useful for implementing circular data structures
without memory leaks or caches of objects.
